package net.oschina.victor.service;

import java.util.List;
import java.util.Set;

import net.oschina.victor.entity.Role;

/**
 * 
 * @author Victor
 *
 */
public interface RoleService {
	/**
	 * 删除角色信息
	 * 
	 * @param roleId
	 */
	public void deleteRole(Long roleId);

	/**
	 * 查询所有角色信息里列表
	 * 
	 * @return
	 */
	public List<Role> findAll();

	/**
	 * 通过ID查询角色信息
	 * 
	 * @param roleId
	 * @return
	 */
	public Role findById(Long roleId);

	/**
	 * 根据角色编号得到权限字符串列表
	 * 
	 * @param roles
	 * @return
	 */
	Set<String> findPermissions(Set<Role> roles);

	/**
	 * 根据角色编号得到角色标识符列表
	 * 
	 * @param roleIds
	 * @return
	 */
	Set<String> findRoles(Long... roleIds);

	/**
	 * 保存角色信息
	 * 
	 * @param role
	 * @return
	 */
	public Role saveRole(Role role);
}
